
package com.uuah.server.api.transport;

import com.uuah.server.api.IUuahMessage;
import com.uuah.server.api.component.service.IService;
import com.uuah.server.api.endpoint.IEndpointURI;
import com.uuah.server.api.endpoint.IUuahEndpoint;
import com.uuah.server.exception.AbstractUuahServerException;


public interface IMessageReceiver extends IConnectable {

	IUuahEndpoint getEndpoint();

	IService getService();

	void setEndpoint(IUuahEndpoint endpoint);

	IEndpointURI getEndpointURI();

	String getReceiverKey();

	void setReceiverKey(String key);

	IUuahMessage routeMessage(IUuahMessage message) throws AbstractUuahServerException;

	IUuahMessage routeMessage(IUuahMessage message, boolean synchronous)
			throws AbstractUuahServerException;
}
